Выполняет поиск описания типа в библиотеке. Можно использовать для быстрой проверки присутствия данного имени в библиотеке.
HRESULT FindName ( OLECHAR FAR* szNameBuf, unsigned long IHashVal, ITypelnfo FAR* FAR* ppTInfo, MEMBERID FAR* rgMemld, unsigned int FAR* pcFound );
Параметры
szNameBuf
Имя, по которому выполняется
поиск.
IHashVal
Хэш-значение для ускорения поиска, вычисленное с
помощью функции LHashValOfNameSys. Если параметр равен 0, то хэш-значение будет
вычисляться автоматически.
ppTInfo
После возврата — массив
указателей на описания типов, содержащих заданное имя. Не может быть
NULL.
rgMemld
Массив MEMBERID для найденных
элементов; rgMemId[i] — это MEMBERID, соответствующий описанию
типа, которое задает ppTInfo[i]. He может быть
NULL.
pcFound
На входе задает число экземпляров, которые
нужно отыскать. Например, для поиска первого вхождения имени можно задать
*pcFound = 1. После того, как найдено заданное число вхождений, поиск
прекращается.
На выходе указывает число найденных экземпляров. Если значение
*pcFound на входе и выходе одинаково, то в библиотеке могут быть и другие
описания, содержащие данное имя.
Коды возврата
Из возвращенного HRESULT получают один из следующих
кодов возврата:
Код возврата | Значение |
S_OK | Успех. |
E_OUTOFMEMORY | He хватает памяти. |
E_INVALIDARG | Один или несколько аргументов неверны. |
TYPE_E_IOERROR | Функция не может выполнить запись в файл. |
TYPE_E_INVDATAREAD | Функция не может читать из файла. |
TYPE_E_UNSUPFORMAT | Библиотека типа имеет старый формат. |
TYPE_E_INVALIDSTATE | He удается открыть библиотеку типа. |
TYPE_E_CANTLOADLIBRARY | He удается загрузить файл библиотеки или .dll. |
TYPE_E_ELEMENTNOTFOUND | Элемент не найден. |
Комментарии
Задание *pcFound = n указывает, что в массивах
ppTInfo и rgMemld достаточно места для n пар (ptinfo,
memid). Если имя в szNameBuf — это имя информации о типе в
ppTInfo[i], то в rgMemId[i] возвращается
MEMBERID_NIL.